//管理用户相关的状态值

//引入 md5
import md5 from 'js-md5';
//引入 cookie
import {
  setCookie,
  getCookie,
  removeCookie
} from '@/utils/support';

//引入后台接口
import { Login } from '@/api/user';

const user = {
  state: {
    name: getCookie("name"),//登录后的用户的中文名   保存在 cookie
    roleid: getCookie("roleid")  //1超级管理员 2 普通用户   保存在 cookie
  },
  mutations: {
    //设置 中文名
    SET_NAME: (state, name) => {
      state.name = name;
    },
    //设置角色id
    SET_ROLEID: (state, roleid) => {
      state.roleid = roleid;
    }
  },
  actions: {
    //登录动作 context ={commit,state}
    LoginAC ({ commit }, userInfo) {
      //写成promise的形式
      return new Promise((resolve) => {
        console.log(commit);
        const { username, password } = userInfo;
        console.log(username);
        //1.密码 加密, 密码不可以明文传到后台   密码：123456
        /*
        加密：  https 协议
        md5(password).substr(10,10)+0426 加盐
        */
        //console.log(md5(password + md5(password).substr(10, 10) + '0426'));
        userInfo.password = md5(password + md5(password).substr(10, 10) + 2014);
        //调用后台接口
        Login(userInfo).then(res => {
          console.log(res);
          //设置cookie
          if (res.status == 200) {
            setCookie("token", res["token"], 1);
            setCookie("name", res["name"], 1);
            setCookie("username", res["username"], 1);
            setCookie("roleid", res["roleid"], 1);
            //设置 store
            commit("SET_NAME", res["name"]);
            commit("SET_ROLEID", res["roleid"]);
            //a. 将成功的数据保存  ，保存到 cookie  和 vuex
            //b.成功的提示  和 页面跳转
            resolve(res);
          }

        })
      })


    },
    LogoutAC ({ commit }) {
      commit("SET_NAME", "");
      commit("SET_ROLEID", "")
      removeCookie("token")
      removeCookie("name")
      removeCookie("username")
      removeCookie("roleid")
    }

  }
}
export default user;